package drds.data_migrate.vo;

import drds.common.Author;
import drds.data_migrate.Authors;
import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.List;

@Author(name = Authors.LI_YANG)
public class TaskConfig
{
    @Setter
    @Getter
    private long jobId;
    @Setter
    @Getter
    private int taskGroupId;
    @Setter
    @Getter
    private int taskId;
    @Setter
    @Getter
    private int columnNumber;

    @Setter
    @Getter
    private int batchSize;
    @Setter
    @Getter
    private int batchByteSize;

    @Setter
    @Getter
    private String writeMode;
    @Setter
    @Getter
    private boolean emptyAsNull;


    @Setter
    @Getter
    private String writeRecordSql;

    @Setter
    @Getter
    private String BASIC_MESSAGE;

    @Setter
    @Getter
    private String insert_or_replace_template;


    @Setter
    @Getter
    private int recordListSize;


    @Setter
    @Getter
    private Object primaryKeyType;


    @Setter
    @Getter
    private int transportChannelSpeedByte;

    @Setter
    @Getter
    private int transportChannelFlowcontrolinterval;
    @Setter
    @Getter
    private int transportChannelCapacityByte;

    @Setter
    @Getter
    private int transportChannelSpeedRecord;
    @Setter
    @Getter
    private int tableNumberMark;


    @Setter
    @Getter
    private String columnNamesString;
    @Setter
    @Getter
    private List<String> columnNameList;

    @Setter
    @Getter
    private String where;


    @Setter
    @Getter
    private List<String> preSqlList;

    @Setter
    @Getter
    private List<String> postSqlList;


    @Setter
    @Getter
    private String jdbcUrl;

    @Setter
    @Getter
    private String username;
    @Setter
    @Getter
    private String password;


    @Setter
    @Getter
    private String tableName;

    @Setter
    @Getter
    private String querySql;

    @Setter
    @Getter
    private String splitColumnName;


    @Setter
    @Getter
    private List<String> splitKeyRangeSqlList;

    @Setter
    @Getter
    private List<String> querySqlList;

    @Setter
    @Getter
    private List<String> tableNameList;

    @Setter
    @Getter
    private String loadBalanceResourceMark;


    @Setter
    @Getter
    private TaskConfig jobReaderParameter;

    @Setter
    @Getter
    private TaskConfig jobWriterParameter;


    @Setter
    @Getter
    private String jobReader;

    @Setter
    @Getter
    private String jobWriter;

    @Setter
    @Getter
    private String jobReaderParameterLoadBalanceResourceMark;
    @Setter
    @Getter
    private String jobWriterParameterLoadBalanceResourceMark;


    @Setter
    @Getter
    private List sessionSqlList = new ArrayList<String>();
}
